﻿#pragma once

_NAMESPACE_BEGIN

/// 摄像机类
class CameraCenter
{
public:
	/// 单体类声明
	SINGLETON_HELPER(CameraCenter)

	CameraCenter();

	virtual ~CameraCenter(){}	

public:
	
	/// 摄像机初始化
	void Initial(Ogre::Camera* camera){mCamera = camera;}

	/// 获取当前的摄像机指针
	Ogre::Camera* GetCamera(){return mCamera;}

	/// 调试视角
	void DebugForward();	///< 前
	void DebugBack();		///< 后 
	void DebugUp();			///< 上
	void DebugDown();		///< 下
	void DebugLeft();		///< 左
	void DebugRight();	    ///< 右
	void DebugYaw(int deg);
	void DebugPitch(int deg);

	void DebugCameraUpdate();

public:
	
	/// 是否使用摄像机
	bool isSampleViewUsingCamera;

protected:

	/// Ogre的摄像机对象指针
	Ogre::Camera* mCamera;

	Radian mRotX, mRotY;
	Vector3 mTranslateVector;
};

_NAMESPACE_END